package beans.aplicacao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.event.ActionEvent;

import beans.Paginas;

import modelos.aplicacao.FinalizaModel;
import modelos.aplicacao.VersaoModel;
import util.Utils;
import dao.aplicacao.FinalizaDao;
import dao.aplicacao.VersaoDao;

@ManagedBean(name = "finalizaBean")
public class FinalizaBean {
	
	private String nome_completo;
	private String cpf;
	private String email;
	private String id_concessionarias1;
	private String id_concessionarias2;
	private String id_concessionarias3;
	
	private int idVersao;
	private int idCor;
	private int idKit;
	private String valorTotal;
	
	private String nomeVersao;
	private String nomeCor;
	private String nomeKit;
	
	private VersaoModel dadosTela;
	private VersaoDao daoVersao = new VersaoDao();
	
	private FinalizaDao dao = new FinalizaDao();
	
	private Utils utils = new Utils();
	
	public int getIdVersao() {
		return idVersao;
	}
	public void setIdVersao(int idVersao) {
		this.idVersao = idVersao;
	}
	public int getIdCor() {
		return idCor;
	}
	public void setIdCor(int idCor) {
		this.idCor = idCor;
	}
	public int getIdKit() {
		return idKit;
	}
	public void setIdKit(int idKit) {
		this.idKit = idKit;
	}
	
	public VersaoModel getDadosTela() throws SQLException {

		dadosTela = daoVersao.getMarcaModelo(dao.getIdModelo(idVersao));
		
		return dadosTela;
	}

	public String getNomeVersao() throws SQLException {
		nomeVersao = dao.getNomeVersao(idVersao);
		return nomeVersao;
	}

	public String getNomeCor() throws SQLException {
		nomeCor = dao.getNomeCor(idCor);
		return nomeCor;
	}

	public String getNomeKit() throws SQLException {
		nomeKit = dao.getNomeKit(idKit);
		return nomeKit;
	}

	public void setNomeVersao(String nomeVersao) {
		this.nomeVersao = nomeVersao;
	}

	public void setNomeCor(String nomeCor) {
		this.nomeCor = nomeCor;
	}

	public void setNomeKit(String nomeKit) {
		this.nomeKit = nomeKit;
	}
	
/**
 * 
 * FORM
 * 
 */
	public String getNome_completo() {
		return nome_completo;
	}
	public void setNome_completo(String nome_completo) {
		this.nome_completo = nome_completo;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getId_concessionarias1() {
		return id_concessionarias1;
	}
	public void setId_concessionarias1(String id_concessionarias1) {
		this.id_concessionarias1 = id_concessionarias1;
	}
	public String getId_concessionarias2() {
		return id_concessionarias2;
	}
	public void setId_concessionarias2(String id_concessionarias2) {
		this.id_concessionarias2 = id_concessionarias2;
	}
	public String getId_concessionarias3() {
		return id_concessionarias3;
	}
	public void setId_concessionarias3(String id_concessionarias3) {
		this.id_concessionarias3 = id_concessionarias3;
	}
	
	public List<String> getConcessionarias() throws SQLException{
		
		List<String> concessionarias = new ArrayList<String>();
		List<FinalizaModel> listCon = new ArrayList<FinalizaModel>();
		
		listCon = dao.getConcessionarias();
		
		for(FinalizaModel lc:listCon)
			concessionarias.add(lc.getRazao_social());
		
		return concessionarias;
		
	}
	
	public void validaCadastro(ActionEvent evt) throws SQLException{
		
		if(nome_completo == "" || email == "" || cpf == "" || dao.verificaCpfDia(cpf)){
			
			dao.cadastraPedido(nome_completo, email, cpf, idVersao, idCor, idKit, id_concessionarias1, id_concessionarias2, id_concessionarias3);
			
			int id = dao.getUltimoPedido();
			
			Paginas.showPage("visualizaresumo.xhtml?id=" + id);
			
		}else{
			
			Paginas.showPage("finalizacadastro.xhtml?id=" + idVersao + "&idCor=" + idCor + "&idKit=" + idKit + "");
			
		}
		
	}
	public String getValorTotal() throws SQLException {
		double total = dao.sumValorTotal(idVersao,idKit);
		
		valorTotal = this.utils.formataDoubleValorDinheito(total);
		
		return valorTotal;
	}
	public void setValorTotal(String valorTotal) {
		this.valorTotal = valorTotal;
	}
}